/*******************************************************************************
 * This file is part of blueprint4j www.blueprint4j.org.
 * 
 *     blueprint4j is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU Lesser General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 * 
 *     blueprint4j is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU Lesser General Public License for more details.
 * 
 *     You should have received a copy of the GNU Lesser General Public License
 *     along with blueprint4j. If not, see <http://www.gnu.org/licenses/>.
 ******************************************************************************/
package blueprint4j.report;

import blueprint4j.db.ConnectionPool;
import blueprint4j.db.DBTools;
import blueprint4j.utils.Log;
import blueprint4j.utils.Settings;
import blueprint4j.utils.SettingsStorePropertiesFile;
import blueprint4j.utils.ThreadSchedule;
//TODO: implements WrapperListener
public class ReportService  {

	public Integer start( String[] args ) {
		Log.info.out("Report service started");
		try {
			init();
			ThreadSchedule.add(new Schedular());
		} catch (Exception exception) {
			exception.printStackTrace();
		}
		return null;
	}

	public static void init()
	throws Exception {
		Settings.setSettingsStore(new SettingsStorePropertiesFile("reports.properties"));
		DBTools.setConnectionPool(
		    new ConnectionPool(
		        ConnectionPool.DBTYPE_MYSQL,
		        Settings.getString("database.name","report"),
		        Settings.getString("jdbc.user", "root"),
		        Settings.getString("jdbc.password", "")
		    ),
		    DBTools.CONNECTIONPOOL_DEFAULT
		);
	}
	public int stop( int exitCode ) {
		ThreadSchedule.haltBlocking();
		return 0;
	}

	public void controlEvent( int event ) {}

	public static void main( String[] args ) {
	//	WrapperManager.start( new ReportService() , args);
	}

}
